Opcja pozwalająca przypisać
dowolne procedury na wejściu (IN) do każdego zadeklarowanego pola oraz po
wyjściu z niego (OUT).
Procedury
IN wykonywane są przed wejściem do pola edycji - mogą na przykład sprawdzać
pewne informacji i umieszczać w kolejnym polu wynik obliczeń itp. Procedury OUT
pozwalają wymusić określone działanie po zakończeniu wprowadzania danych w polu
edycji np. po wprowadzeniu numeru NIP lub nazwy skróconej podczas zakładania
kartoteki program może wyświetlić ostrzegający komunikat, że istnieje kartoteka
o podanym identyfikatorze itp.
W
przedstawionym przykładzie wykorzystano następujące procedury:
§
Do pola Indeks podpięto procedurę 0052, która
sprawdza powtarzalność symbolu indeksu (Test unikalności indeksu) w momencie
wyjścia z pola - zakończenia edycji i próbie przejścia do kolejnego pola edycji
-> symbolu magazynu.
§
Do pola magazyn przypisano procedurę 0018, która
otwiera skorowidz magazynów klawiszem <F1> oraz sprawdza, czy wpisany symbol
magazynu występuje w skorowidzu.
§
Do pola jednostka przypisano procedurę 0064, która
otwiera skorowidz symboli jednostek.
W przypadku wprowadzenia innego symbolu procedury lub jej
braku program będzie realizował inne zadania lub nie będzie ich wcale.
Drugi przykład ilustruje możliwość wykorzystania procedury
w miejscu IN. W przypadku wystawiania dokumentów sprzedaży, szablon SPN chcemy,
aby w polu termin zapłaty (TERMINFA) program zaproponował użytkownikowi datę
wynikającą z daty sprzedaży powiększonej o liczbę dni wprowadzoną w polu
ILOŚĆDNI. W związku z powyższym podpinamy procedurę w miejscu IN numer 0017,
która obliczy właściwą datę, a jej wartość wprowadzi do pola TERMINFA.
Warto zwrócić uwagę, że procedura 0018 skorowidz symboli
magazynów wykorzystany w szablonie ASN (kartoteka asortymentowa) ma również
zastosowanie w szablonie SPN (rejestr sprzedaży).
Nacisnięcie klawisza <F1> otwiera skorowidz z
funkcjami do wyboru:
Funkcje kartoteki kontrahentów – typ ODN
0005 |
Test Nip-u |
TestKarUnique(x,y,z) |
{3,"NIP","Powtórzony
NIP !",,"Czy kontrahent ma zo |
0006 |
Test nazwy skroconej |
TestKarUnique(x,y,z) |
{3,"ACH","Powtórzona
nazwa skrocona",,,.T.,.T.,.T. |
0007 |
Test nazwy pelnej |
TestKarUnique(x,y,z) |
{3,"ACH","Powtórzona
nazwa !","{|| ACH+UPPER(NAZWA |
0010 |
Notatnik miejscowsci |
SetValSlo(x,y,z) |
{"Miejscowosci" ,"08",30,} |
0011 |
Skorowidz kodow walut |
SetValSlo(x,y,z) |
{"Kod waluty" ,"WA",03,} |
0022 |
Notatnik ulic |
SetValSlo(x,y,z) |
{"Ulice" ,"09",30,} |
0023 |
Notatnik kodow pocztowych |
SetValSlo(x,y,z) |
{"Kod
pocztowy"
,"10",06,} |
0024 |
Notatnik nazw kontrahentow |
SetValSlo(x,y,z) |
{"Nazwy
kontrahentów"
,"11",50,} |
0025 |
Notatnik powiatow |
SetValSlo(x,y,z) |
{"Powiaty" ,"19",20,} |
0054 |
Test unikalności ANALITYKI |
TestKarUnique(x,y,z) |
{0,"KTRHID","Powtórzona
analityka",,,.T.,.F.,.T.} |
0198 |
Notatnik województw |
SetValSlo(x,y,z) |
{"Województwa" ,"21",30,} |
0200 |
Notatnik typów klienta |
SetValSlo(x,y,z) |
{"Typ klienta" ,"23",30,} |
0202 |
Notatnik grup cenowych |
SetValSlo(x,y,z) |
{"Grupy
cenowe"
,"24",50,} |